package main

import "fmt"

func main() {
	//空接口是特殊形式的接口类型，普通的接口都有方法，而空接口没有定义任何方法.因此，我们可以说所有类型都至少实现了空接口。
	var i interface{}

	//对于空接口来说，他的类型和值，都是nil
	fmt.Printf("type:%T,value %v \n", i, i)

	//通常我们会直接使用 interface{} 作为类型声明一个实例，而这个实例可以保存任意类型的值。
	var i2 interface{}

	i2 = 1       //保存int没问题
	i2 = false   //再改成bool型，没问题
	i2 = "hello" //再改成字符串，没问题
	fmt.Println(i2)
}
